home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Pascal / Snippets / vListMngr 1.0 / Sources ƒ / HandleTheMenus < prev    next >
Encoding:
Text File  |  1996-04-10  |  3.1 KB  |  137 lines  |  [TEXT/PJMM]

  1. unit HandleTheMenus;
  2.  
  3. interface
  4.  
  5.     uses
  6.         vListMngr, vListDemo_Globals, About_Dialog, DemoList_Procs, DemoList_Window, InitTheMenus;
  7.  
  8.     procedure Handle_My_Menu (var doneFlag: boolean; theMenu, theItem: integer; var theInput: TEHandle);{Handle menu selection}
  9.  
  10. implementation
  11.     procedure Handle_My_Menu;           {Handle menu selections realtime}
  12.         const
  13.             L_Apple = 1001;             {Menu list}
  14.             C_About = 1;
  15.             L_File = 1002;              {Menu list}
  16.             C_ShowHead = 1;
  17.             C_ClearHead = 2;
  18.             C_Quit = 4;
  19.             L_Edit = 1003;
  20.             C_Edit = 1;
  21.             C_Refresh = 2;
  22.             C_AddColumn = 4;
  23.             C_DelColumn = 5;
  24.             C_AddRow = 7;
  25.             C_DelRow = 8;
  26.             C_FrameCells = 10;
  27.  
  28.         var
  29.             DNA, tInt: integer;
  30.             BoolHolder: boolean;       {For SystemEdit result}
  31.             DAName: Str255;        {For getting DA name}
  32.             SavePort: GrafPtr;     {Save current port when opening DAs}
  33.             markChar: CHAR;
  34.             tErr: OSERR;
  35.             tMenu: MenuHandle;
  36.     begin                           {Start of procedure}
  37.  
  38.         case theMenu of         {Do selected menu list}
  39.  
  40.             L_Apple: 
  41.                 begin
  42.                     case theItem of{Handle all commands in this menu list}
  43.                         C_About: 
  44.                             begin
  45.                                 AboutDialog;
  46.                             end;
  47.                         otherwise{Handle the DAs}
  48.                             begin
  49.                                 GetPort(SavePort);
  50.                                 GetItem(AppleMenu, theItem, DAName);
  51.                                 DNA := OpenDeskAcc(DAName);
  52.                                 SetPort(SavePort);
  53.                             end;
  54.                     end;
  55.                 end;
  56.  
  57.             L_File: 
  58.                 begin
  59.                     case theItem of
  60.                         C_ShowHead: 
  61.                             ShowHeadings;
  62.                         C_ClearHead: 
  63.                             ClearHeadings;
  64.                         C_Quit: 
  65.                             begin
  66.                                 doneFlag := TRUE;
  67.                             end;
  68.                     end;
  69.                 end;
  70.  
  71.             L_Edit: 
  72.                 begin
  73.                     case theItem of
  74.                         C_Edit: 
  75.                             begin
  76.                                 GetItemMark(GetMHandle(theMenu), C_Edit, markChar);
  77.                                 if markChar = CHR(checkMark) then
  78.                                     begin
  79.                                         CheckItem(GetMHandle(theMenu), C_Edit, FALSE);
  80.                                         vLActivateTE(FALSE, DemoList);
  81.                                     end
  82.                                 else
  83.                                     begin
  84.                                         CheckItem(GetMHandle(theMenu), C_Edit, TRUE);
  85.                                         vLActivateTE(TRUE, DemoList);
  86.                                     end;
  87.                             end;
  88.                         C_Refresh: 
  89.                             begin
  90.                                 RefreshList;
  91.                             end;
  92.                         C_AddColumn: 
  93.                             begin
  94.                                 tInt := vLAddColumn(1, vLLastClick(DemoList).h, DemoList);
  95.                             end;
  96.                         C_DelColumn: 
  97.                             begin
  98.                                 vLDelColumn(1, vLLastClick(DemoList).h, DemoList);
  99.                             end;
  100.                         C_AddRow: 
  101.                             begin
  102.                                 tInt := vLAddRow(1, vLLastClick(DemoList).v, DemoList);
  103.                             end;
  104.                         C_DelRow: 
  105.                             begin
  106.                                 vLDelRow(1, vLLastClick(DemoList).v, DemoList);
  107.                             end;
  108.                         C_FrameCells: 
  109.                             begin
  110.                                 GetItemMark(GetMHandle(theMenu), C_FrameCells, markChar);
  111.                                 if markChar = CHR(checkMark) then
  112.                                     begin
  113.                                         CheckItem(GetMHandle(theMenu), C_FrameCells, FALSE);
  114.                                         vLFrame(0, DemoList);        {}
  115.                                         vLInsetList(0, 0, DemoList);        {force redraw of list}
  116.                                     end
  117.                                 else
  118.                                     begin
  119.                                         CheckItem(GetMHandle(theMenu), C_FrameCells, TRUE);
  120.                                         vLFrame(1, DemoList);        {}
  121.                                         vLInsetList(0, 0, DemoList);        {force redraw of list}
  122.                                     end;
  123.                             end;
  124.                     end;    {case}
  125.                 end;
  126.  
  127.  
  128.             otherwise
  129.                 begin
  130.                 end;
  131.  
  132.         end;        {End for the Lists}
  133.  
  134.         HiliteMenu(0);          {Turn menu selection off}
  135.     end;    {procedure Handle_My_Menu}
  136.  
  137. end.   {unit HandleTheMenus}